/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.ecommerce.entity.impl;

import br.com.ecommerce.entity.IEntity;
import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.NotEmpty;

/**
 *
 * @author rpateixeira
 */
@Entity
@Table(name="INTERESE_POR_PRODUTO")
public class CallOnAvaliable implements IEntity,Serializable{
    @Id
    @SequenceGenerator(name = "CALLONAVALIABLE_GENERATOR", sequenceName = "public.callonavaliableSequence", initialValue = 1)
    @GeneratedValue(strategy = GenerationType.SEQUENCE,generator="CALLONAVALIABLE_GENERATOR")
    @Column(name="SEQ_INTERESE_POR_PRODUTO")
    private Long id;
    @Column
    @Email
    @NotNull
    @NotEmpty
    private String email;
    @ManyToOne(cascade=CascadeType.REFRESH)
    @JoinColumn(name="ID_PRODUTO",referencedColumnName="SEQ_PRODUTO")
    @NotNull
    @Valid
    private Produto produto;
    @Column
    private boolean called=false;

    @Override
    public Long getId() {
        return this.id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public Produto getProduto() {
        return produto;
    }

    public void setProduto(Produto produto) {
        this.produto = produto;
    }

    public boolean isCalled() {
        return called;
    }

    public void setCalled(boolean called) {
        this.called = called;
    }

    


}
